一、题目大意标签:动态规划https://leetcode.cn/problems/decode-ways一条包含字母 A-Z的消息通过以下映射进行了编码:'A'->"1"'B'->"2"...'Z'->"26"要解码已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106"可以映射为:"AAJF",将消息分组为(11106)"KJF",将消息分组为(11106)注意,消息不能分组为 (11106),因为"06"不能映射为"F",这是由于"6"和"06"在映射中并不等价。给你一个只含数字的非空字符串s,请计算并返回解码方法的总数。题目数据保证答案肯定是
1.题目给你一个正整数数组 nums ,对 nums 所有元素求积之后,找出并返回乘积中 不同质因数 的数目。注意:质数 是指大于 1 且仅能被 1 及自身整除的数字。如果 val2/val1 是一个整数,则整数 val1 是另一个整数 val2 的一个因数。 示例1:输入:nums=[2,4,3,7,10,6]输出:4解释:nums中所有元素的乘积是:2*4*3*7*10*6=10080=25*32*5*7。共有4个不同的质因数,所以返回4。示例2:输入:nums=[2,4,8,16]输出:1解释:nums中所有元素的乘积是:2*4*8*16=1024=210。共有1个不同的质因数,所以返回
初识动态规划,我对这个算法的理解是这样的:1.找到初始值-原始解2.在找到各种解与原始解的关系3.通过循环得到答案 适用于动态规划的问题首先就是不同路径:问题是给定一个M*N的地图从左上到右下角一共有多少种不同的方案(每次只能向右或者向下走一格)。那么解决这个问题的关键在于你如何确定初始解与答案之间的联系。首先我们可以确定地图的左边与上边都为1,因为只能往右或者下走。例如从【0,0】走到【0,5】只能选择连续向右走五步,或者从【0,0】走到【5,0】只能选择连续向下走五步。那么走到【1,1】有多少种走法?根据每次只能向下走一步或者向右走一步的特性,所以只能由【0,1】或者【1,0】到达【1,1
一、题目大意标签:动态规划https://leetcode.cn/problems/decode-ways一条包含字母 A-Z的消息通过以下映射进行了编码:'A'->"1"'B'->"2"...'Z'->"26"要解码已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106"可以映射为:"AAJF",将消息分组为(11106)"KJF",将消息分组为(11106)注意,消息不能分组为 (11106),因为"06"不能映射为"F",这是由于"6"和"06"在映射中并不等价。给你一个只含数字的非空字符串s,请计算并返回解码方法的总数。题目数据保证答案肯定是
一、题目大意标签:搜索https://leetcode.cn/problems/surrounded-regions给你一个mxn的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的 'O'用'X'填充。示例1:输入:board=[["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]解释:被围绕的区间不会存在于边界
一、题目大意标签:搜索https://leetcode.cn/problems/surrounded-regions给你一个mxn的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的 'O'用'X'填充。示例1:输入:board=[["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]解释:被围绕的区间不会存在于边界
一、题目大意标签:搜索https://leetcode.cn/problems/shortest-bridge在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的1形成的一个最大组。)现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。返回必须翻转的 0的最小数目。(可以保证答案至少是1。)示例1:输入:A=[[0,1],[1,0]]输出:1示例2:输入:A=[[0,1,0],[0,0,0],[0,0,1]]输出:2示例3:输入:A=[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]输出:1提示:2A
一、题目大意标签:搜索https://leetcode.cn/problems/shortest-bridge在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的1形成的一个最大组。)现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。返回必须翻转的 0的最小数目。(可以保证答案至少是1。)示例1:输入:A=[[0,1],[1,0]]输出:1示例2:输入:A=[[0,1,0],[0,0,0],[0,0,1]]输出:2示例3:输入:A=[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]输出:1提示:2A
一、题目大意标签:搜索https://leetcode.cn/problems/word-ladder-ii按字典 wordList完成从单词beginWord到单词endWord转化,一个表示此过程的转换序列是形式上像beginWord->s1->s2->...->sk这样的单词序列,并满足:每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词si(1sk==endWord给你两个单词beginWord和endWord,以及一个字典wordList。请你找出并返回所有从beginWord到endWord的最短转换序列,如果不存在这样的转换序列,返回一个空列表。每个序列都应该以单词列表[b
一、题目大意标签:搜索https://leetcode.cn/problems/word-ladder-ii按字典 wordList完成从单词beginWord到单词endWord转化,一个表示此过程的转换序列是形式上像beginWord->s1->s2->...->sk这样的单词序列,并满足:每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词si(1sk==endWord给你两个单词beginWord和endWord,以及一个字典wordList。请你找出并返回所有从beginWord到endWord的最短转换序列,如果不存在这样的转换序列,返回一个空列表。每个序列都应该以单词列表[b